﻿//dd作为集训队的队长，一直掌管着集训室的空调遥控器，她需要调整温度使队员们更好地进入训练状态，
//已知集训室一共有n名队员，每位队员都有一个温度诉求a[i](1≤i≤n)，
//当室内温度为K时，当且仅当∣a[i]−K∣≤p时，这个队员能够正常进入训练状态，否则就会开始躁动，
//作为队长，dd需要调整好温度，她想知道，在最佳情况下，最多有多少队员同时进入训练状态
//
//输入描述 :
//第一行两个数n, p(1≤n, p≤1000000), 含义如题面描述
//接下来一行n个数a[i](1≤a[i]≤1000000)表示每个队员的温度诉求
//输出描述 :
//输出一个数字，表示最多有多少队员同时进入训练状态
//
//输入
//6 2
//1 5 3 2 4 6
//输出
//5
//说明
//温度调成3或4，都可以满足5名队员同时进入训练状态

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e6 + 10;
int n, p;
int arr[N];
int main()
{
	cin >> n >> p;
	for (int i = 0; i < n; i++) cin >> arr[i];
	sort(arr, arr + n);

	int ret = 0, left = 0, right = 0;
	p *= 2;

	while (right < n)
	{
		while (arr[right] - arr[left] > p)
		{
			left++;
		}
		ret = max(ret, right - left + 1);
		right++;
	}

	cout << ret << endl;

	return 0;
}



